#![allow(non_snake_case,unused_imports)]
#[macro_use]
extern crate lazy_static;
extern crate simple_excel_writer as excel;
use crate::daoimpl::Database;
use std::sync::{Arc, Mutex};

pub mod config;
pub(crate) mod daoimpl;
pub(crate) mod domain;
pub(crate) mod serviceimpl;
pub(crate) mod utils;
pub mod controller;
pub mod middleware;
pub mod custcontroller;

// AppState
// This the primary dependency for our application's dependency injection.
// Each controller_test function that interacts with the database will require an `AppState` instance in
// order to communicate with the database.
pub struct AppState<'a> {
	pub connections: Mutex<u32>,
	pub context: Arc<Database<'a>>,
}
